"""
编写一个工具箱类和工具类
工具类:需要有工具具的名称、功能描述、价格。
工具箱类:能够添加工具、删除工具、查看工具，并且能获取工具箱中工具的总数。
实例化几个工具。并在工具箱对象当中做添加/删除/查看工具操作，获取工具箱对象中有几个工具。
工具比如锤子、斧头、螺丝刀等工具。
提示:不需要用到继承。
"""
from day15.mylogger import logger

class Instrument():
    def __init__(self, name, function, price):
        self.name = name
        self.function = function
        self.price = price

    def print_tool_info(self):
        logger.info(f"工具的名称{self.name}\n工具的作用{self.function}\n工具的价格{self.price}\n")


class Work_box():
    def __init__(self):
        self.tools = []     #定义一个列表，存放工具类的对象

    def add_tool(self, tool_obj):
        logger.info("添加{}工具到工具箱".format(tool_obj.name))
        if tool_obj not in self.tools:    #tool_obj作为参数，如果没在列表里
            self.tools.append(tool_obj)   #就添加

        else:
            logger.error("此工具箱里已有这个工具")

    def del_tool(self, tool_obj):
        logger.info("从工具箱中删除{}工具".format(tool_obj.name))
        if tool_obj in self.tools:
            self.tools.remove(tool_obj)

        else:
            logger.error("此工具箱没有这个工具")

    def get_tool(self, tool_obj: Instrument):
        logger.info("从工具箱中查看{}工具的属性".format(tool_obj.name))
        if tool_obj in self.tools:
            tool_obj.print_tool_info()

        else:
            logger.error("此工具箱没有这个工具")

    def get_count_of_tools(self):
        logger.info("目前工具箱中一共有{}工具".format(len(self.tools)))
        count = len(self.tools)
        print(count)


# 实例化工具
tool1 = Instrument("螺丝刀", "扭螺丝", 15)
tool2 = Instrument("锤子", "锤地", 30)
tool3 = Instrument("锄头", "挖墙脚", 150)


# 实例化工具箱
box = Work_box()

# 添加工具到工具箱
box.get_count_of_tools()
box.add_tool(tool1)
box.add_tool(tool2)
box.add_tool(tool3)
box.get_count_of_tools()
box.get_tool(tool2)
box.get_tool(tool1)
box.del_tool(tool1)
box.get_tool(tool1)
box.get_count_of_tools()